package com.ming.rental.config;


import com.ming.rental.utils.Result;
import com.ming.rental.utils.ResultCode;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * 全局异常处理类
 * 用于捕获全局异常并返回统一的错误响应
 */
@RestControllerAdvice
@Slf4j
public class GlobalException {

    /**
     * 全局异常处理方法
     * 捕获所有异常类型的异常信息，并记录到日志中，然后返回一个统一的错误响应
     *
     * @param e 异常对象，包含捕获到的异常信息
     * @return Result对象，包含错误信息的响应
     */
    @ExceptionHandler(Exception.class)
    public Result handleException(Exception e) {
        // 记录异常信息到日志中
        log.error("异常信息：{}", e.getMessage());

        log.error("异常堆栈：{}",e.toString());
        // 返回包含异常信息的错误响应
        return Result.fail().setMessage(e.getMessage());
    }

    /*@ExceptionHandler(RuntimeException.class)
    public Result handleRuntimeException(Exception e) {
        log.error("异常信息：{}", e.getMessage());
        return Result.fail().setMessage(e.getMessage());
    }*/

}

